Server independent deployment of plug-ins

ABSTRACT

Disclosed are methods and systems for deploying one or more plug-ins. The method and systems involve receiving a request for generating a graphical user interface at a client computing device, the request includes a configuration for flash content of the graphical user interface, identifying a one or more plug-ins associated with the request and at least one extension of the identified one or more plug-ins, the one or more plug-ins having been deployed at a plurality of content servers across plurality of platform types and stored in a plug-in repository, retrieving the identified one or more plug-ins based on the extension of the identified one or more plug-ins and generating the requested graphical user interface based on the retrieved one or more plug-ins.

FIELD

The field generally relates to deploying plug-ins and more specificallyto deploying server independent plug-ins.

BACKGROUND

A Flex package is a user interface application component implementedwith the Adobe Flex® technology. The flex technology, used to build userinterfaces, includes code and metadata about the components and assets.The user interfaces built by the flex technology are different from thegeneral user interfaces since they typically provide a richer userexperience. The user interface applications are built as a package andthey are shipped to the customer. Once the package is shipped to thecustomer, they have to be regularly updated. To update the existingpackage, a new package along with the latest updates has to bere-complied at run time. Further, if the packages are developed onmultiple server platforms, the updates of the package are deployed onthe corresponding server platforms.

Currently available systems provide a standard deployment mechanism forFlex components through a folder path accessible from the web rootfolder or packaged as .WAR files deployed on a server container. Thissystem is not flexible enough to support distributed deployment. Theassembly of Flex components from different server platforms and runningthem in flash player runtime requires the availability of cross-domainpolicy files on the server root, which stipulate the access policy forthe Flex components deployed in the server. There is a need fordeploying the Flex components in a transparent way.

SUMMARY

Various embodiments of systems and methods for server independentdeployment of plug-ins are described herein. The method and systemsinvolve receiving a request for generating a graphical user interface ata client computing device, the request includes a configuration forflash content of the graphical user interface, identifying a one or moreplug-ins associated with the request and at least one extension of theidentified plug-ins. The one or more plug-ins are deployed at aplurality of content servers across a plurality of platform types andare stored in a plug-in repository. The identified one or more plug-insare retrieved based on the extension of the one or more plug-ins and therequested graphical user interface is generated based on the retrievedone or more plug-ins. In one embodiment, the one or more plug-ins areretrieved according to plug-in identifiers.

These and other benefits and features of embodiments of the inventionwill be apparent upon consideration of the following detaileddescription of preferred embodiments thereof, presented in connectionwith the following drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

The claims set forth the embodiments of the invention withparticularity. The invention is illustrated by way of example and not byway of limitation in the figures of the accompanying drawings in whichlike references indicate similar elements. The embodiments, togetherwith their advantages, may be best understood from the followingdetailed description taken in conjunction with the accompanyingdrawings.

FIG. 1 is a block diagram illustrating an exemplary block diagram fordeploying one or more plug-ins according to an embodiment.

FIG. 2 is a flow diagram illustrating an exemplary method for generatinga user interface by deploying plug-ins according to an embodiment.

FIG. 3 is a flow diagram illustrating an exemplary method foridentifying extensions of the plug-ins according to an embodiment.

FIG. 4 is a block diagram of an exemplary plug-in registry according toan embodiment.

FIG. 5 is a block diagram of an exemplary system for deploying one ormore plug-ins according to an embodiment.

FIG. 6 is a block diagram of an exemplary computer system according anembodiment.

DETAILED DESCRIPTION

Embodiments of techniques for server independent deployment of plug-insare described herein. In the following description, numerous specificdetails are set forth to provide a thorough understanding of variousembodiments. One skilled in the relevant art will recognize, however,that the invention can be practiced without one or more of the specificdetails, or with other methods, components, materials, etc. In otherinstances, well-known structures, materials, or operations are not shownor described in detail to avoid obscuring aspects of the invention.

Reference throughout this specification to “one embodiment”, “thisembodiment” and similar phrases, means that a particular feature,structure, or characteristic described in connection with the embodimentis included in at least one embodiment of the present invention. Thus,the appearances of these phrases in various places throughout thisspecification are not necessarily all referring to the same embodiment.Furthermore, the particular features, structures, or characteristics maybe combined in any suitable manner in one or more embodiments.

The Flex Client Platform (FCP) is a module system for building richinternet applications. The rich internet applications are built on topof Flex™ or Flash technology. The FCP will be available for one or moreserver platforms. The FCP client is based on a modular architecturewhich allows extension of underlying framework and capabilities. The FCPdefines extension points. Extension points provide a first applicationdesigned to be incorporated into a second application in order toenhance, or extend, the functionalities of the second application. Thearchitecture also supports flexible deployment of additional componentsduring runtime without the need to recompile the application.

FCP includes two components namely FCP client and FCP server. The FCPclient loads the plug-ins at runtime, starts the plug-ins and connectsthe extension point offered by the first plug-ins with the extensionsoffered by the second plug-ins. FCP server includes multiple servers onvarious platforms. The multiple servers enable incremental deployment ofthe plug-ins. The multiple server platforms may include but are notrestricted to Java, ABAP, .Net, C, C++ and so on.

The FCP server includes a plurality of content servers on which theplug-ins are deployed. The plug-ins may be deployed on different serverplatforms. The plug-ins may be developed by the flex technology.Consider a business scenario of three teams A, B and C developingplug-ins. The teams develop plug-ins independently across plurality ofcontent servers. Team A develops plug-in P1, Team B develops P2, andTeam C develops P3. Plug-in P2 is a reusable plug-in. The plug-ins aredeployed by the plug-in manager. The plug-ins are registered in theplug-in registry. The plug-in registry includes the plug-in identifiersand the details about the content servers on which the plug-ins aredeployed. The plug-in registry registers the extension points offered bythe plug-ins.

In one embodiment, the FCP server may include just in time configurationcreator, application resource handler and scope management module. Thejust in time configuration creator enables the FCP client to start upthe application. The application resource handler responds to the clientrequest. The client request may include resource requests such asplug-in manifests, images, and so on.

The FCP client receives a user request for generating the GUI. Therequest includes configurations required for generating a flash contentof the GUI. The configuration of the flash content may include but arenot restricted to images, animations, video and interactiveapplications. The plug-ins associated with the request are identified.The identified plug-ins are retrieved from a plug-in repository based onthe description provided by the plug-in in the plug-in registry. Theidentified plug-ins are checked for extensions. A suitable extension forthe identified plug-in is searched. Both the extensions are linked togenerate the requested user interface.

FIG. 1 is a block diagram illustrating an exemplary method for deployingone or more plug-ins according to an embodiment. Business scenario 100includes a client computing device 115 on the client side 105, contentserver 1 120, content server 2 125, content server 3 130 to contentserver n 135 and deployment module 155 on the server side 110. Theclient computing device 115 receives a request from a user forgenerating a GUI. The user request includes receiving a configurationfor generating a flash content of the GUI. The configuration of theflash content may include but is not restricted to images, animations,video and interactive applications. The user interface is a combinationof one or more plug-ins, which results in the requested user interface.In one embodiment, the plug-ins may be deployed across one or morecontent servers. For instance, in the plug-ins may be deployed at theJava platform or an ABAP platform. The Java plug-in and the ABAP plug-inare deployed by a deployment module 155. In another embodiment, thedeployment module may include a plug-in manager, a plug-in registry anda plug-in repository. The deployed plug-ins are stored from the contentservers to the plug-in repository through a plug-in registry.

On receiving the user request, the plug-ins required to generate therequested GUI are identified. The plug-ins are identified through aplug-in manifest. The plug-in manifest provides functional descriptionof the deployed plug-ins. Based on the description in the plug-inmanifest, the plug-ins suitable for generating the GUI are retrievedfrom the plug-in repository. The GUI is generated based on the flashcontent provided by the retrieved plug-ins. For instance, the plug-indeployed in Java and the plug-in deployed in ABAP may be linked togetherto render a requested user interface.

According to one embodiment, the content server 2 125 is connected tothree sub-content servers 140, 145 and 150. When the client computingdevice 115 makes a request for generating the flash content of the GUI,the plug-ins required for the generation of the GUI may have beendeployed at the sub-content servers 140, 145 and 150. In anotherembodiment, though the plug-ins are deployed at one sub-content server(e.g., 140), the plug-ins may be served from the content server 2 125 asthe sub content server 140 is connected to the content server 2 125.

In yet another embodiment, the plug-in manager redirects the httprequests to the appropriate content server based on universal resourcelocator (URL) formats and special http headers. For instance, if theclient computing device 115 makes a request for a image located on thecontent server 120 and if that image is moved to the another contentserver 130, the request for the image is redirected from content server120 to content server 130.

FIG. 2 is a flow diagram illustrating an exemplary method for generatinga GUI by deploying plug-ins according to an embodiment. A request togenerate a GUI is received at process block 205. The request includesreceiving a configuration for generating flash content of the GUI. Theconfiguration of the flash content may include but is not restricted toimages, animations, video and interactive applications. The GUI may begenerated by a combination of one or more plug-ins. At process block210, the plug-ins associated with the request and at least one extensionof the identified plug-ins are identified. The extension of the plug-indefines the function offered by the plug-in. The functions offered bythe plug-in are defined in a plug-in manifest. According to oneembodiment, the plug-ins may have been deployed at one or more contentservers across different server platforms. The plug-ins are deployedfrom the content servers and stored in the plug-in repository through aplug-in registry. The content servers may be but are not restricted toJava, J2EE, .Net, ABAP and so on. Similarly, the server platforms may bebut are not restricted to Java, J2EE, .Net, ABAP and so on. At processblock 215, the one or more plug-ins are retrieved from a plug-inrepository based on the extension of the identified one or moreplug-ins. Retrieving the identified plug-ins involve retrieving theplug-ins according to plug-in identifiers. The plug-ins are retrievedaccording to the plug-in identifiers. The entries of the plug-ins in theplug-in registry indicate the details about the content server on whichthe plug-ins were deployed. At process block 220, the GUI is generatedbased on the retrieved plug-ins. The GUI is generated and presented tothe user. In one embodiment, the user interface is generated at a FlashPlayer® run time.

In another embodiment, the plug-ins are deployed incrementally.Deploying the plug-ins incrementally allows the one or more plug-ins tocome in and go out of the platform independent of other plug-ins. In yetanother embodiment, the plug-in registry indicates the link between theplug-ins. For instance, if application A includes plug-ins P1 and P2,the plug-in registry indicates that P1 and P2 are linked. If a userintends to download plug-in P1 the plug-in registry indicates he mayalso want to download P2.

FIG. 3 is a flow diagram illustrating an exemplary method foridentifying extensions of the plug-ins according to an embodiment. Atprocess block 305, extension point provided by a first plug-in isidentified. Extension points provide a first application designed to beincorporated into a second application in order to enhance, or extend,the functionalities of the second application. At process block 310, asecond plug-in suitable for the extension point of the first plug-in issearched. At decision block 315, it is checked if the required extensionfor the first plug-in is found. If the second plug-in is found, theprocess proceeds to process block 320 to retrieve the plug-ins deployedat the plug-in repository. At process block 325, the first plug-in andthe second plug-in are linked. At decision block 315, if the targetplug-in is not found, the process ends. In one embodiment, if the firstplug-in offers more than one extension, the process explained above isrepeated.

Consider an example of a language conversion user interface. Theplug-ins associated with the language conversion user interface areidentified. The functions of the identified plug-ins are declared in theplug-in manifest. A plug-in ‘X’ with function as understanding alanguage interface is offering an extension point. In this scenario, theextension point is “understanding language interface” which means thatany other plug-in ‘Y’ providing a language tool such as convertingEnglish to German may be combined with the plug-in ‘X’. The firstplug-in ‘X’ and the second plug-in may be linked to render a languageconversion user interface for converting English to German.

Consider another scenario where a language interface is shipped to acustomer. For instance, the shipped language interface supports threelanguages English, French and German. Now an enhanced version of thelanguage interface is available which supports two other new languagesSpanish and Japanese. In this scenario, the shipped language interfaceis a first plug-in offering an extension point and the enhanced versionof the language interface is a second plug-in which may be linked to theextension point provided by the first plug-in. Once the first plug-inand the second plug-in are linked the language interface offers fivelanguages (i.e. English, French, German, Spanish and Japanese).

FIG. 4 is a block diagram of an exemplary plug-in registry according toan embodiment. The plug- in registry 405 includes bundles 410 and anextension map 415. In one embodiment, the bundle may be a plug-in. Oncea plug-in is deployed from a content server, the plug-in registry 405updates a identifier (ID) 420, universal resource identifier (URI) 425,version 430 and remote location 435 associated with the deployed plug-inin the bundle 410. The URI 425 is used to retrieve a plug-in from aremote server. The remote location 435 specifies the remote location ofthe server where the plug-in is deployed. The plug-in registry 405 alsoincludes the extension points 440, extensions 445 and execution scope450 associated with the plug-in. The extension points 440 provide afirst application designed to be incorporated into a second applicationin order to enhance, or extend, the functionalities of the secondapplication. Consider the language interface business scenario oflanguage conversion user interface explained in FIG. 3. For thisbusiness scenario, the extension point of the plug-in specified in theextension point 440 may be “understanding language interface”. Theextension 445 offered to the extension point 440 may be “language toolconverting English to German”. In one embodiment, the extensions 445 mayinclude the plug-ins which contribute to extension point 440 or anotherextension point on a different content server. In another embodiment,the bundles 410 enable a user to search extension points when an ID isentered, The ID may be a plug-in identifier. In another embodiment, theextension points 440 and extension 455 may define a plug-in to be lazyloaded. This criterion is defined by the ‘lazy loading’ associated withthe plug-in identifiers. Lazy loading enables a plug-in in anapplication to be loaded at a later point of time based on a userselection.

The extension map 415 includes extension point id 455 and bundles 460.The bundles also include an ID. The extension map 415 enables a user tosearch for an extension when a extension point ID is entered.

In one embodiment, the plug-in registry 405 includes an execution scope450. The execution scope 450 may categorize the view of an applicationinto a basic view and an advanced view. For instance, if there are fiveplug-ins contributing to an application, the user may want to displaytwo plug-ins in the basic view and five plug-ins in the advanced view.This criterion may be defined in the execution scope 450 according tothe plug-in identifier. The ‘belongs to section’ associated with theexecution scope 450 may include details about the type of view (e.g.,basic view or advanced view).

FIG. 5 is a block diagram of an exemplary system for deploying one ormore plug-ins according to an embodiment. The computer system 500includes a client side 505 and a server side 510. The client side 505includes a client computing device 515, a user interface (UI) 550 and agraphical UI generator 545. The server side 510 includes a contentserver 520 and plug-in repository 540. The memory 525 of the contentserver 520 includes a plug-in manager 530, plug-in registry 535, just intime configuration creator 555, application resource handler 560 andscope management module 565. The processor (not shown), in communicationwith the memory 525 includes instructions for the plug-in manager 530,the plug-in registry 535, just in time configuration creator 555,application resource handler 560 and scope management module 565 toperform the required operations.

The plug-ins are deployed at the content server 520. In one embodiment,the server side 510 includes several content servers. Several developersdeploy the plug-ins at these content servers. The content servers may beof different server platform types. In one embodiment each of thecontent servers may maintain the plug-in registry and plug-in managerwithin its memory whereas the plug-in repository may be on anothercontent server.

The plug-ins deployed at the content server 520 includes flash contentrequired to generate the user interface 550. At design time, theplug-ins are deployed by the plug-in manager 530. The plug-ins areregistered in the plug-in registry 535 according to their plug-inidentifiers. The plug-in registry 535 also provides function associatedwith the plug-in. The plug-ins are stored in the plug-in repository 540.

The client computing device 515 receives a request from a user togenerate a user interface 550. The user request includes theconfiguration required for the flash content generation associated withthe user interface 550. The just in time configuration creator 455supplies the configurations required by the client computing device 515to generate the user interface. The just in time configuration creator555 also helps in incremental and independent deployment of theplug-ins.

At runtime, the user request is forwarded to the application resourcehandler 560. The application resource handler 560 responds to the userrequest such as plug-in requests, image request, plug-in manifestrequest and so on. On receiving the request for generating the userinterface 550, the plug-ins are retrieved from the plug-in repository540 according to their plug-in identifiers and the user interface 550 isgenerated by the graphical UI generator 545. The generated userinterface is presented on the user interface 550.

According to one embodiment, the scope management module 565 categorizesthe plug-ins. According to another embodiment, categorizing the plug-insinvolves arranging the plug-ins according to the security rights. Thesecurity rights may include but are not restricted to, providing accessto the plug-ins with a user login and restricting access to the plug-inswithout a user login.

Some embodiments of the invention may include the above-describedmethods being written as one or more software components. Thesecomponents, and the functionality associated with each, may be used byclient, server, distributed, or peer computer systems. These componentsmay be written in a computer language corresponding to one or moreprogramming languages such as, functional, declarative, procedural,object-oriented, lower level languages and the like. They may be linkedto other components via various application programming interfaces andthen compiled into one complete application for a server or a client.Alternatively, the components may be implemented in server and clientapplications. Further, these components may be linked together viavarious distributed programming protocols. Some example embodiments ofthe invention may include remote procedure calls being used to implementone or more of these components across a distributed programmingenvironment. For example, a logic level may reside on a first computersystem that is remotely located from a second computer system containingan interface level (e.g., a graphical user interface). These first andsecond computer systems can be configured in a server-client,peer-to-peer, or some other configuration. The clients can vary incomplexity from mobile and handheld devices, to thin clients and on tothick clients or even other servers.

The above-illustrated software components are tangibly stored on acomputer readable storage medium as instructions. The term “computerreadable storage medium” should be taken to include a single medium ormultiple media that stores one or more sets of instructions. The term“computer readable storage medium” should be taken to include anyphysical article that is capable of undergoing a set of physical changesto physically store, encode, or otherwise carry a set of instructionsfor execution by a computer system which causes the computer system toperform any of the methods or process steps described, represented, orillustrated herein. Examples of computer-readable media include, but arenot limited to: magnetic media, such as hard disks, floppy disks, andmagnetic tape; optical media such as CD-ROMs, DVDs and holographicdevices; magneto-optical media; and hardware devices that are speciallyconfigured to store and execute, such as application-specific integratedcircuits (“ASICs”), programmable logic devices (“PLDs”) and ROM and RAMdevices. Examples of computer readable instructions include machinecode, such as produced by a compiler, and files containing higher-levelcode that are executed by a computer using an interpreter. For example,an embodiment of the invention may be implemented using Java, C++, orother object-oriented programming language and development tools.Another embodiment of the invention may be implemented in hard-wiredcircuitry in place of, or in combination with machine readable softwareinstructions.

FIG. 6 is a block diagram of an exemplary computer system 600 accordingto an embodiment. The computer system 600 includes a processor 605 thatexecutes software instructions or code stored on a computer readablestorage medium 655 to perform the above-illustrated methods of theinvention. The computer system 600 includes a media reader 640 to readthe instructions from the computer readable storage medium 655 and storethe instructions in storage 610 or in random access memory (RAM) 615.The storage 610 provides a large space for keeping static data where atleast some instructions could be stored for later execution. The storedinstructions may be further compiled to generate other representationsof the instructions and dynamically stored in the RAM 615. The processor605 reads instructions from the RAM 615 and performs actions asinstructed. According to one embodiment of the invention, the computersystem 600 further includes an output device 625 (e.g., a display) toprovide at least some of the results of the execution as outputincluding, but not limited to, visual information to users and an inputdevice 630 to provide a user or another device with means for enteringdata and/or otherwise interacting with the computer system 600. Each ofthese output devices 625 and input devices 630 could be joined by one ormore additional peripherals to further expand the capabilities of thecomputer system 600. A network communicator 635 may be provided toconnect the computer system 600 to a network 650 and in turn to otherdevices connected to the network 650 including other clients, servers,data stores, and interfaces, for instance. The modules of the computersystem 600 are interconnected via a bus 645. Computer system 600includes a data source interface 620 to access data source 660. The datasource 660 can be accessed via one or more abstraction layersimplemented in hardware or software. For example, the data source 660may be accessed by network 650. In some embodiments the data source 660may be accessed via an abstraction layer, such as, a semantic layer.

A data source is an information resource. Data sources include sourcesof data that enable data storage and retrieval. Data sources may includedatabases, such as, relational, transactional, hierarchical,multi-dimensional (e.g., OLAP), object oriented databases, and the like.Further data sources include tabular data (e.g., spreadsheets, delimitedtext files), data tagged with a markup language (e.g., XML data),transactional data, unstructured data (e.g., text files, screenscrapings), hierarchical data (e.g., data in a file system, XML data),files, a plurality of reports, and any other data source accessiblethrough an established protocol, such as, Open DataBase Connectivity(ODBC), produced by an underlying software system (e.g., ERP system),and the like. Data sources may also include a data source where the datais not tangibly stored or otherwise ephemeral such as data streams,broadcast data, and the like. These data sources can include associateddata foundations, semantic layers, management systems, security systemsand so on.

In the above description, numerous specific details are set forth toprovide a thorough understanding of embodiments of the invention. Oneskilled in the relevant art will recognize, however, that the inventioncan be practiced without one or more of the specific details or withother methods, components, techniques, etc. In other instances,well-known operations or structures are not shown or described in detailto avoid obscuring aspects of the invention.

Although the processes illustrated and described herein include seriesof steps, it will be appreciated that the different embodiments of thepresent invention are not limited by the illustrated ordering of steps,as some steps may occur in different orders, some concurrently withother steps apart from that shown and described herein. In addition, notall illustrated steps may be required to implement a methodology inaccordance with the present invention. Moreover, it will be appreciatedthat the processes may be implemented in association with the apparatusand systems illustrated and described herein as well as in associationwith other systems not illustrated.

The above descriptions and illustrations of embodiments of theinvention, including what is described in the Abstract, is not intendedto be exhaustive or to limit the invention to the precise formsdisclosed. While specific embodiments of, and examples for, theinvention are described herein for illustrative purposes, variousequivalent modifications are possible within the scope of the invention,as those skilled in the relevant art will recognize. These modificationscan be made to the invention in light of the above detailed description.Rather, the scope of the invention is to be determined by the followingclaims, which are to be interpreted in accordance with establisheddoctrines of claim construction.

What is claimed is:
 1. An article of manufacture including anon-transitory computer readable storage medium to tangibly storeinstructions, which when executed by a computer, cause the computer to:receive a request to generate a graphical user interface including oneor more plugs-ins at a client computing device, the request comprising aconfiguration for flash content of the graphical user interface;identify the one or more plug-ins based on one or more plug-in manifestsassociated with the one or more plug-ins, the one or more plug-insdeployed at a plurality of content servers of a plurality of platformtypes and stored in a plug-in repository; identify at least oneextension point provided by a first plug-in from the identified one ormore plug-ins, wherein the at least one extension point providesextension of the functions offered by the first plug-in; determine atleast one second plug-in suitable for the identified at least oneextension point of the first plug-in; based on one or more extensionpoints of the identified one or more plug-ins and a function describedin the one or more plug-in manifests, retrieve the identified one ormore plug-ins and the at least one second plug-in from a plug-inrepository to the client computing device; and link the first plug-inand the at least one second plug-in to generate the requested graphicaluser interface.
 2. The article of manufacture in claim 1, whereinretrieving the identified one or more plug-ins and the at least onesecond plug-in comprises retrieving the plug-ins according to plug-inidentifiers.
 3. The article of manufacture in claim 1, whereingenerating the requested graphical user interface comprises generatingthe user interface at flash run time.
 4. The article of manufacture inclaim 1, wherein generating the requested graphical user interfacecomprises generating the graphical user interface based on a flashcontent from the retrieved one or more plug-ins and the at least onesecond plug-in.
 5. A computer system for generating a graphical userinterface by using a one or more deployed plug-ins, the computer systemcomprising: a processor; a client computing device to receive a userrequest to generate the graphical user interface including one or moreplugs-ins, the user request comprising a configuration for flash contentof the graphical user interface; a memory in association with theprocessor storing instructions related to: a plug-in manager to: deploythe one or more plug-ins from the one or more content servers, identifythe one or more plug-ins based on one or more plug-in manifestsassociated with the one or more plug-ins; and based on the one or moreidentified plug-ins and a function described in the one or more plug-inmanifests, retrieve the deployed plug-ins; and a plug-in registry toregister the deployed one or more plug-ins; a plug-in repository tostore the deployed one or more plug-ins according to plug-inidentifiers; a graphical user interface generator to generate therequested graphical user interface by retrieving one or more plug-ins;and a user interface to present the generated graphical user interface.6. The computer system of claim 5, wherein the plug-in registrycomprises a function associated with a plug-in from the one or moreplug-ins.
 7. The computer system of claim 5, wherein the graphical userinterface generator generates the graphical user interface based on acombination of the one or more plug-ins.
 8. The computer system of claim5, wherein the user interface is generated at a flash run time.
 9. Thecomputer system of claim 5, wherein the graphical user interfacegenerator generates the graphical user interface based on a flashcontent from the retrieved one or more plug-ins.
 10. The computer systemof claim 5, wherein a content server in the one or more content serverscomprises a just in time configuration creator.
 11. The computer systemof claim 5, wherein a content server in the one or more content serverscomprises an application resource handler.
 12. The computer system ofclaim 5, wherein a content server in the one or more content serverscomprises a scope management module.
 13. A computerized method forgenerating graphical user interface by using one or more deployedplug-ins, the computerized method comprising: receiving a request togenerate a graphical user interface including one or more plugs-ins at aclient computing device, the request comprising a configuration forflash content of the graphical user interface; identifying one or moreplug-ins based on one or more plug-in manifests associated with the oneor more plug-ins, the one or more plug-ins been deployed at a pluralityof content servers of a plurality of platform types and stored in aplug-in repository; identifying at least one extension point provided bya first plug-in from the identified one or more plug-ins, wherein the atleast one extension point provides extension of the functions offered bythe first plug-in; determining at least one second plug-in suitable forthe identified at least one extension point of the first plug-in; basedon one or more extension points of the identified one or more plug-insand a function described in the one or more plug-in manifests,retrieving the identified one or more plug-ins and the at least onesecond plug-in from a plug-in repository to the client computing device;and linking the first plug-in and the at least one second plug-in togenerate the requested graphical user interface.
 14. The computerizedmethod of claim 13, wherein retrieving the identified one or moreplug-ins and the at least one second plug-in comprises retrieving theplug-ins according to plug-in identifiers.
 15. The computerized methodof claim 13, wherein the graphical user interface is generated at aflash run time.
 16. The computerized method of claim 13, whereingenerating the requested graphical user interface comprises generatingthe graphical user interface based on a flash content from the retrievedone or more plug-ins and the at least one second plug-in.